<HTML><HEAD>
<META NAME="copyright" CONTENT="Copyright (c) 1986-2006, Eiffel Software and others">
<META NAME="license" CONTENT="Eiffel Forum License v2 (see forum.txt)">
<META NAME="description" CONTENT="A low-level string class to solve some garbage collector problems (mainly objects moving around) when interfacing with C APIs.">
<META NAME="library" CONTENT="Free implementation of ELKS library">
<META NAME="keywords" CONTENT="Eiffel class">
<META NAME="keywords" CONTENT="Eiffel class">
<TITLE>c_string Flat contracts</TITLE></HEAD>
<BODY BGCOLOR="white">
<P ALIGN="CENTER">Automatic generation produced by ISE Eiffel</P>
<PRE><TABLE BORDER="1" ALIGN="CENTER"><TR><TD><A HREF="../class_list.html">Classes</A></TD><TD><A HREF="../cluster_list.html">Clusters</A></TD><TD><A HREF="../cluster_hierarchy.html">Cluster hierarchy</A></TD><TD><A HREF="c_string_chart.html">Chart</A></TD><TD><A HREF="c_string_links.html">Relations</A></TD><TD>Flat contracts</TD></TR></TABLE><B>indexing</B>
    description: "A low-level string class to solve some garbage collector problems (mainly objects moving around) when interfacing with C APIs."
    library: "Free implementation of ELKS library"
    copyright: "Copyright (c) 1986-2006, Eiffel Software and others"
    license: "Eiffel Forum License v2 (see forum.txt)"
    date: "$Date: 2008-06-11 01:29:46 +0200 (Wed, 11 Jun 2008) $"
    revision: "$Revision: 173 $"

<B>class</B> <B>interface</B>
    <A HREF="../base/c_string_flatshort.html">C_STRING</A>


<B>create</B> 
    <A NAME="f_make"><A HREF="../base/c_string_flatshort.html#f_make">make</A> (a_string: <A HREF="../base/string_general_flatshort.html">STRING_GENERAL</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Make a C string from </FONT>`a_string'<FONT COLOR="red">.</FONT>
        <B>require</B>
            a_string_not_void: a_string /= <B>Void</B>
</A>
    <A NAME="f_make_empty"><A HREF="../base/c_string_flatshort.html#f_make_empty">make_empty</A> (a_length: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Make an empty C string of </FONT>`a_length'<FONT COLOR="red"> characters.</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> C memory area is not initialized.</FONT>
        <B>require</B>
            a_length_positive: a_length &gt;= 0
</A>
    <A NAME="f_make_by_pointer"><A HREF="../base/c_string_flatshort.html#f_make_by_pointer">make_by_pointer</A> (a_ptr: <A HREF="../base/pointer_flatshort.html">POINTER</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Make a copy of string pointed by </FONT>`a_ptr'<FONT COLOR="red">.</FONT>
        <B>require</B>
            a_ptr_not_null: a_ptr /= <A HREF="../base/any_flatshort.html#f_default_pointer">default_pointer</A>
</A>
    <A NAME="f_make_by_pointer_and_count"><A HREF="../base/c_string_flatshort.html#f_make_by_pointer_and_count">make_by_pointer_and_count</A> (a_ptr: <A HREF="../base/pointer_flatshort.html">POINTER</A>; a_length: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Make a copy of first </FONT>`a_length'<FONT COLOR="red"> byte of string pointed by </FONT>`a_ptr'<FONT COLOR="red">.</FONT>
        <B>require</B>
            a_ptr_not_null: a_ptr /= <A HREF="../base/any_flatshort.html#f_default_pointer">default_pointer</A>
            a_length_non_negative: a_length &gt;= 0
</A>
    <A NAME="f_share_from_pointer"><A HREF="../base/c_string_flatshort.html#f_share_from_pointer">share_from_pointer</A> (a_ptr: <A HREF="../base/pointer_flatshort.html">POINTER</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> New instance sharing </FONT>`a_ptr'<FONT COLOR="red">.</FONT>
        <B>require</B>
            a_ptr_not_null: a_ptr /= <A HREF="../base/any_flatshort.html#f_default_pointer">default_pointer</A>
</A>
    <A NAME="f_share_from_pointer_and_count"><A HREF="../base/c_string_flatshort.html#f_share_from_pointer_and_count">share_from_pointer_and_count</A> (a_ptr: <A HREF="../base/pointer_flatshort.html">POINTER</A>; a_length: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> New instance sharing </FONT>`a_ptr'<FONT COLOR="red"> of </FONT>`a_length'<FONT COLOR="red"> byte.</FONT>
        <B>require</B>
            a_ptr_not_null: a_ptr /= <A HREF="../base/any_flatshort.html#f_default_pointer">default_pointer</A>
            a_length_non_negative: a_length &gt;= 0
</A>
<B>feature</B> <FONT COLOR="red">--</FONT><FONT COLOR="red"> Initialization</FONT>

    <A NAME="f_share_from_pointer"><A HREF="../base/c_string_flatshort.html#f_share_from_pointer">share_from_pointer</A> (a_ptr: <A HREF="../base/pointer_flatshort.html">POINTER</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> New instance sharing </FONT>`a_ptr'<FONT COLOR="red">.</FONT>
        <B>require</B>
            a_ptr_not_null: a_ptr /= <A HREF="../base/any_flatshort.html#f_default_pointer">default_pointer</A>
</A>
    <A NAME="f_share_from_pointer_and_count"><A HREF="../base/c_string_flatshort.html#f_share_from_pointer_and_count">share_from_pointer_and_count</A> (a_ptr: <A HREF="../base/pointer_flatshort.html">POINTER</A>; a_length: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> New instance sharing </FONT>`a_ptr'<FONT COLOR="red"> of </FONT>`a_length'<FONT COLOR="red"> byte.</FONT>
        <B>require</B>
            a_ptr_not_null: a_ptr /= <A HREF="../base/any_flatshort.html#f_default_pointer">default_pointer</A>
            a_length_non_negative: a_length &gt;= 0
</A>    
<B>feature</B> <FONT COLOR="red">--</FONT><FONT COLOR="red"> Access</FONT>

    <A NAME="f_copy_to_string"><A HREF="../base/c_string_flatshort.html#f_copy_to_string">copy_to_string</A> (a_string: <A HREF="../base/string_general_flatshort.html">STRING_GENERAL</A>; source_index, destination_index, n: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Copy </FONT>`n'<FONT COLOR="red"> characters of </FONT>`Current'<FONT COLOR="red"> from </FONT>`source_index'<FONT COLOR="red"> position to </FONT>`a_string'<FONT COLOR="red"> at</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> </FONT>`destination_index'<FONT COLOR="red">. Other characters of </FONT>`a_string'<FONT COLOR="red"> remain unchanged.</FONT>
        <B>require</B>
            a_string_not_void: a_string /= <B>Void</B>
            source_index_positive: source_index &gt;= 1
            destination_index_positive: destination_index &gt;= 1
            n_non_negative: n &gt;= 0
            n_is_small_enough_for_source: source_index + (n - 1) &lt;= <A HREF="../base/c_string_flatshort.html#f_capacity">capacity</A>
            n_is_small_enough_for_destination: destination_index + (n - 1) &lt;= a_string.<A HREF="../base/readable_string_general_flatshort.html#f_count">count</A>
</A>
    <A NAME="f_generating_type"><A HREF="../base/any_flatshort.html#f_generating_type">generating_type</A>: <A HREF="../base/string_8_flatshort.html">STRING_8</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Name of current object's generating type</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> (type of which it is a direct instance)</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            generating_type_not_void: <B>Result</B> /= <B>Void</B>
            generating_type_not_empty: <B>not</B> <B>Result</B>.<A HREF="../base/finite_flatshort.html#f_is_empty">is_empty</A>
</A>
    <A NAME="f_generator"><A HREF="../base/any_flatshort.html#f_generator">generator</A>: <A HREF="../base/string_8_flatshort.html">STRING_8</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Name of current object's generating class</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> (base class of the type of which it is a direct instance)</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            generator_not_void: <B>Result</B> /= <B>Void</B>
            generator_not_empty: <B>not</B> <B>Result</B>.<A HREF="../base/finite_flatshort.html#f_is_empty">is_empty</A>
</A>
    <A NAME="f_item"><A HREF="../base/c_string_flatshort.html#f_item">item</A>: <A HREF="../base/pointer_flatshort.html">POINTER</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Get pointer to allocated area.</FONT>
        <B>ensure</B>
            item_not_null: <B>Result</B> /= <A HREF="../base/any_flatshort.html#f_default_pointer">default_pointer</A>
</A>
    <A NAME="f_managed_data"><A HREF="../base/c_string_flatshort.html#f_managed_data">managed_data</A>: <A HREF="../base/managed_pointer_flatshort.html">MANAGED_POINTER</A></A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Hold data of Current.</FONT>

    <A NAME="f_read_string_into"><A HREF="../base/c_string_flatshort.html#f_read_string_into">read_string_into</A> (a_string: <A HREF="../base/string_general_flatshort.html">STRING_GENERAL</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Copy of substring containing all characters at indices</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> between </FONT>`start_pos'<FONT COLOR="red"> and </FONT>`end_pos'<FONT COLOR="red"> into </FONT>`a_string'<FONT COLOR="red"> replacing any</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> existing characters.</FONT>
        <B>require</B>
            a_string_not_void: a_string /= <B>Void</B>
            a_string_large_enough: a_string.<A HREF="../base/readable_string_general_flatshort.html#f_count">count</A> &gt;= <A HREF="../base/c_string_flatshort.html#f_count">count</A>
</A>
    <A NAME="f_read_substring_into"><A HREF="../base/c_string_flatshort.html#f_read_substring_into">read_substring_into</A> (a_string: <A HREF="../base/string_general_flatshort.html">STRING_GENERAL</A>; start_pos, end_pos: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Copy of substring containing all characters at indices</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> between </FONT>`start_pos'<FONT COLOR="red"> and </FONT>`end_pos'<FONT COLOR="red"> into </FONT>`a_string'<FONT COLOR="red">.</FONT>
        <B>require</B>
            a_string_not_void: a_string /= <B>Void</B>
            start_position_big_enough: start_pos &gt;= 1
            end_position_big_enough: start_pos &lt;= end_pos + 1
            end_position_not_too_big: end_pos &lt;= <A HREF="../base/c_string_flatshort.html#f_capacity">capacity</A>
            a_string_large_enough: a_string.<A HREF="../base/readable_string_general_flatshort.html#f_count">count</A> &gt;= end_pos - start_pos + 1
</A>
    <A NAME="f_string"><A HREF="../base/c_string_flatshort.html#f_string">string</A>: <A HREF="../base/string_8_flatshort.html">STRING_8</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Eiffel string, ignoring </FONT><A HREF="../base/c_string_flatshort.html#f_count">count</A><FONT COLOR="red">. Reads until a null character is being read.</FONT>
        <B>ensure</B>
            string_not_void: <B>Result</B> /= <B>Void</B>
</A>
    <A NAME="f_substring"><A HREF="../base/c_string_flatshort.html#f_substring">substring</A> (start_pos, end_pos: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A>): <A HREF="../base/string_8_flatshort.html">STRING_8</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Copy of substring containing all characters at indices</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> between </FONT>`start_pos'<FONT COLOR="red"> and </FONT>`end_pos'<FONT COLOR="red">.</FONT>
        <B>require</B>
            start_position_big_enough: start_pos &gt;= 1
            end_position_big_enough: start_pos &lt;= end_pos + 1
            end_position_not_too_big: end_pos &lt;= <A HREF="../base/c_string_flatshort.html#f_capacity">capacity</A>
        <B>ensure</B>
            susbstring_not_void: <B>Result</B> /= <B>Void</B>
</A>    
<B>feature</B> <FONT COLOR="red">--</FONT><FONT COLOR="red"> Measurement</FONT>

    <A NAME="f_bytes_count"><A HREF="../base/c_string_flatshort.html#f_bytes_count">bytes_count</A>: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Number of bytes represented by the string.</FONT>
</A>
    <A NAME="f_capacity"><A HREF="../base/c_string_flatshort.html#f_capacity">capacity</A>: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Number of characters in Current.</FONT>
</A>
    <A NAME="f_character_size"><A HREF="../base/c_string_flatshort.html#f_character_size">character_size</A>: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A> <B>is</B> 1</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Size of a character</FONT>

    <A NAME="f_count"><A HREF="../base/c_string_flatshort.html#f_count">count</A>: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A></A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Number of characters in Current.</FONT>
    
<B>feature</B> <FONT COLOR="red">--</FONT><FONT COLOR="red"> Comparison</FONT>

    <A NAME="f_deep_equal"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_deep_equal">deep_equal</A> (some: ?<A HREF="../base/any_flatshort.html">ANY</A>; other: <B>like</B> arg #1): <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Are </FONT>`some'<FONT COLOR="red"> and </FONT>`other'<FONT COLOR="red"> either both void</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> or attached to isomorphic object structures?</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            shallow_implies_deep: <A HREF="../base/any_flatshort.html#f_standard_equal">standard_equal</A> (some, other) <B>implies</B> <B>Result</B>
            both_or_none_void: (some = <B>Void</B>) <B>implies</B> (<B>Result</B> = (other = <B>Void</B>))
            same_type: (<B>Result</B> <B>and</B> (some /= <B>Void</B>)) <B>implies</B> (other /= <B>Void</B> <B>and then</B> some.<A HREF="../base/any_flatshort.html#f_same_type">same_type</A> (other))
            symmetric: <B>Result</B> <B>implies</B> <A HREF="../base/any_flatshort.html#f_deep_equal">deep_equal</A> (other, some)
</A>
    <A NAME="f_equal"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_equal">equal</A> (some: ?<A HREF="../base/any_flatshort.html">ANY</A>; other: <B>like</B> arg #1): <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Are </FONT>`some'<FONT COLOR="red"> and </FONT>`other'<FONT COLOR="red"> either both void or attached</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> to objects considered equal?</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            definition: <B>Result</B> = (some = <B>Void</B> <B>and</B> other = <B>Void</B>) <B>or else</B> ((some /= <B>Void</B> <B>and</B> other /= <B>Void</B>) <B>and then</B> some.<A HREF="../base/any_flatshort.html#f_is_equal">is_equal</A> (other))
</A>
    <A NAME="f_is_deep_equal"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_is_deep_equal">is_deep_equal</A> (other: <A HREF="../base/c_string_flatshort.html">C_STRING</A>): <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Are </FONT>`Current'<FONT COLOR="red"> and </FONT>`other'<FONT COLOR="red"> attached to isomorphic object structures?</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            other_not_void: other /= <B>Void</B>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            shallow_implies_deep: <A HREF="../base/any_flatshort.html#f_standard_is_equal">standard_is_equal</A> (other) <B>implies</B> <B>Result</B>
            same_type: <B>Result</B> <B>implies</B> <A HREF="../base/any_flatshort.html#f_same_type">same_type</A> (other)
            symmetric: <B>Result</B> <B>implies</B> other.<A HREF="../base/any_flatshort.html#f_is_deep_equal">is_deep_equal</A> (<B>Current</B>)
</A>
    <A NAME="f_is_equal"><A HREF="../base/any_flatshort.html#f_is_equal">is_equal</A> (other: <A HREF="../base/c_string_flatshort.html">C_STRING</A>): <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Is </FONT>`other'<FONT COLOR="red"> attached to an object considered</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> equal to current object?</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            other_not_void: other /= <B>Void</B>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            symmetric: <B>Result</B> <B>implies</B> other.<A HREF="../base/any_flatshort.html#f_is_equal">is_equal</A> (<B>Current</B>)
            consistent: <A HREF="../base/any_flatshort.html#f_standard_is_equal">standard_is_equal</A> (other) <B>implies</B> <B>Result</B>
</A>
    <A NAME="f_standard_equal"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_standard_equal">standard_equal</A> (some: ?<A HREF="../base/any_flatshort.html">ANY</A>; other: <B>like</B> arg #1): <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Are </FONT>`some'<FONT COLOR="red"> and </FONT>`other'<FONT COLOR="red"> either both void or attached to</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> field-by-field identical objects of the same type?</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Always uses default object comparison criterion.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            definition: <B>Result</B> = (some = <B>Void</B> <B>and</B> other = <B>Void</B>) <B>or else</B> ((some /= <B>Void</B> <B>and</B> other /= <B>Void</B>) <B>and then</B> some.<A HREF="../base/any_flatshort.html#f_standard_is_equal">standard_is_equal</A> (other))
</A>
    <A NAME="f_standard_is_equal"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_standard_is_equal">standard_is_equal</A> (other: <A HREF="../base/c_string_flatshort.html">C_STRING</A>): <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Is </FONT>`other'<FONT COLOR="red"> attached to an object of the same type</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> as current object, and field-by-field identical to it?</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            other_not_void: other /= <B>Void</B>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            same_type: <B>Result</B> <B>implies</B> <A HREF="../base/any_flatshort.html#f_same_type">same_type</A> (other)
            symmetric: <B>Result</B> <B>implies</B> other.<A HREF="../base/any_flatshort.html#f_standard_is_equal">standard_is_equal</A> (<B>Current</B>)
</A>    
<B>feature</B> <FONT COLOR="red">--</FONT><FONT COLOR="red"> Status report</FONT>

    <A NAME="f_conforms_to"><A HREF="../base/any_flatshort.html#f_conforms_to">conforms_to</A> (other: <A HREF="../base/any_flatshort.html">ANY</A>): <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Does type of current object conform to type</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> of </FONT>`other'<FONT COLOR="red"> (as per Eiffel: The Language, chapter 13)?</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            other_not_void: other /= <B>Void</B>
</A>
    <A NAME="f_same_type"><A HREF="../base/any_flatshort.html#f_same_type">same_type</A> (other: <A HREF="../base/any_flatshort.html">ANY</A>): <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Is type of current object identical to type of </FONT>`other'<FONT COLOR="red">?</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            other_not_void: other /= <B>Void</B>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            definition: <B>Result</B> = (<A HREF="../base/any_flatshort.html#f_conforms_to">conforms_to</A> (other) <B>and</B> other.<A HREF="../base/any_flatshort.html#f_conforms_to">conforms_to</A> (<B>Current</B>))
</A>    
<B>feature</B> <FONT COLOR="red">--</FONT><FONT COLOR="red"> Element change</FONT>

    <A NAME="f_fill_blank"><A HREF="../base/c_string_flatshort.html#f_fill_blank">fill_blank</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Fill Current with zeros.</FONT>
</A>
    <A NAME="f_fill_value"><A HREF="../base/c_string_flatshort.html#f_fill_value">fill_value</A> (a_value: <A HREF="../base/integer_8_flatshort.html">INTEGER_8</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Fill Current with </FONT>`a_value'<FONT COLOR="red">.</FONT>
</A>
    <A NAME="f_set_count"><A HREF="../base/c_string_flatshort.html#f_set_count">set_count</A> (a_count: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Set </FONT><A HREF="../base/c_string_flatshort.html#f_count">count</A><FONT COLOR="red"> with </FONT>`a_count'<FONT COLOR="red">.</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Note: Current content from index </FONT>`1'<FONT COLOR="red"> to</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> </FONT>`count.min (a_count)'<FONT COLOR="red"> is unchanged.</FONT>
        <B>require</B>
            a_count_non_negative: a_count &gt;= 0
        <B>ensure</B>
            count_set: <A HREF="../base/c_string_flatshort.html#f_count">count</A> = a_count
</A>
    <A NAME="f_set_string"><A HREF="../base/c_string_flatshort.html#f_set_string">set_string</A> (a_string: <A HREF="../base/string_general_flatshort.html">STRING_GENERAL</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Set </FONT><A HREF="../base/c_string_flatshort.html#f_string">string</A><FONT COLOR="red"> with </FONT>`a_string'<FONT COLOR="red">.</FONT>
        <B>require</B>
            a_string_not_void: a_string /= <B>Void</B>
            a_string_is_string_8: a_string.<A HREF="../base/readable_string_general_flatshort.html#f_is_valid_as_string_8">is_valid_as_string_8</A>
</A>
    <A NAME="f_set_substring"><A HREF="../base/c_string_flatshort.html#f_set_substring">set_substring</A> (a_string: <A HREF="../base/string_general_flatshort.html">STRING_GENERAL</A>; start_pos, end_pos: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Set </FONT><A HREF="../base/c_string_flatshort.html#f_string">string</A><FONT COLOR="red"> with </FONT>`a_string'<FONT COLOR="red">.</FONT>
        <B>require</B>
            a_string_not_void: a_string /= <B>Void</B>
            start_position_big_enough: start_pos &gt;= 1
            end_position_big_enough: start_pos &lt;= end_pos + 1
            end_pos_small_enough: end_pos &lt;= a_string.<A HREF="../base/readable_string_general_flatshort.html#f_count">count</A>
</A>    
<B>feature</B> <FONT COLOR="red">--</FONT><FONT COLOR="red"> Duplication</FONT>

    <A NAME="f_copy"><A HREF="../base/any_flatshort.html#f_copy">copy</A> (other: <A HREF="../base/c_string_flatshort.html">C_STRING</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Update current object using fields of object attached</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> to </FONT>`other'<FONT COLOR="red">, so as to yield equal objects.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            other_not_void: other /= <B>Void</B>
            type_identity: <A HREF="../base/any_flatshort.html#f_same_type">same_type</A> (other)
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            is_equal: <A HREF="../base/any_flatshort.html#f_is_equal">is_equal</A> (other)
</A>
    <A NAME="f_deep_copy"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_deep_copy">deep_copy</A> (other: <A HREF="../base/c_string_flatshort.html">C_STRING</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Effect equivalent to that of:</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red">		</FONT><A HREF="../base/any_flatshort.html#f_copy">copy</A><FONT COLOR="red"> (</FONT>`other'<FONT COLOR="red"> . </FONT><A HREF="../base/any_flatshort.html#f_deep_twin">deep_twin</A><FONT COLOR="red">)</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            other_not_void: other /= <B>Void</B>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            deep_equal: <A HREF="../base/any_flatshort.html#f_deep_equal">deep_equal</A> (<B>Current</B>, other)
</A>
    <A NAME="f_deep_twin"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_deep_twin">deep_twin</A>: <A HREF="../base/c_string_flatshort.html">C_STRING</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> New object structure recursively duplicated from Current.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            deep_twin_not_void: <B>Result</B> /= <B>Void</B>
            deep_equal: <A HREF="../base/any_flatshort.html#f_deep_equal">deep_equal</A> (<B>Current</B>, <B>Result</B>)
</A>
    <A NAME="f_standard_copy"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_standard_copy">standard_copy</A> (other: <A HREF="../base/c_string_flatshort.html">C_STRING</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Copy every field of </FONT>`other'<FONT COLOR="red"> onto corresponding field</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> of current object.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            other_not_void: other /= <B>Void</B>
            type_identity: <A HREF="../base/any_flatshort.html#f_same_type">same_type</A> (other)
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            is_standard_equal: <A HREF="../base/any_flatshort.html#f_standard_is_equal">standard_is_equal</A> (other)
</A>
    <A NAME="f_standard_twin"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_standard_twin">standard_twin</A>: <A HREF="../base/c_string_flatshort.html">C_STRING</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> New object field-by-field identical to </FONT>`other'<FONT COLOR="red">.</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Always uses default copying semantics.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            standard_twin_not_void: <B>Result</B> /= <B>Void</B>
            equal: <A HREF="../base/any_flatshort.html#f_standard_equal">standard_equal</A> (<B>Result</B>, <B>Current</B>)
</A>
    <A NAME="f_twin"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_twin">twin</A>: <A HREF="../base/c_string_flatshort.html">C_STRING</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> New object equal to </FONT>`Current'
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> </FONT><A HREF="../base/any_flatshort.html#f_twin">twin</A><FONT COLOR="red"> calls </FONT><A HREF="../base/any_flatshort.html#f_copy">copy</A><FONT COLOR="red">; to change copying/twining semantics, redefine </FONT><A HREF="../base/any_flatshort.html#f_copy">copy</A><FONT COLOR="red">.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            twin_not_void: <B>Result</B> /= <B>Void</B>
            is_equal: <B>Result</B>.<A HREF="../base/any_flatshort.html#f_is_equal">is_equal</A> (<B>Current</B>)
</A>    
<B>feature</B> <FONT COLOR="red">--</FONT><FONT COLOR="red"> Basic operations</FONT>

    <A NAME="f_default"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_default">default</A>: ?<A HREF="../base/c_string_flatshort.html">C_STRING</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Default value of object's type</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
</A>
    <A NAME="f_default_pointer"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_default_pointer">default_pointer</A>: <A HREF="../base/pointer_flatshort.html">POINTER</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Default value of type </FONT>`POINTER'
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> (Avoid the need to write </FONT>`p'<FONT COLOR="red">.</FONT><A HREF="../base/any_flatshort.html#f_default">default</A><FONT COLOR="red"> for</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> some </FONT>`p'<FONT COLOR="red"> of type </FONT>`POINTER'<FONT COLOR="red">.)</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
</A>
    <A NAME="f_default_rescue"><A HREF="../base/any_flatshort.html#f_default_rescue">default_rescue</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Process exception for routines with no Rescue clause.</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> (Default: do nothing.)</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
</A>
    <A NAME="f_do_nothing"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_do_nothing">do_nothing</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Execute a null action.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
</A>    
<B>feature</B> <FONT COLOR="red">--</FONT><FONT COLOR="red"> Output</FONT>

    <A NAME="f_io"><A HREF="../base/any_flatshort.html#f_io">io</A>: <A HREF="../base/std_files_flatshort.html">STD_FILES</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Handle to standard file setup</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            io_not_void: <B>Result</B> /= <B>Void</B>
</A>
    <A NAME="f_out"><A HREF="../base/any_flatshort.html#f_out">out</A>: <A HREF="../base/string_8_flatshort.html">STRING_8</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> New string containing terse printable representation</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> of current object</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            out_not_void: <B>Result</B> /= <B>Void</B>
</A>
    <A NAME="f_print"><A HREF="../base/any_flatshort.html#f_print">print</A> (some: ?<A HREF="../base/any_flatshort.html">ANY</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Write terse external representation of </FONT>`some'
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> on standard output.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
</A>
    <A NAME="f_tagged_out"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_tagged_out">tagged_out</A>: <A HREF="../base/string_8_flatshort.html">STRING_8</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> New string containing terse printable representation</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> of current object</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            tagged_out_not_void: <B>Result</B> /= <B>Void</B>
</A>    
<B>feature</B> <FONT COLOR="red">--</FONT><FONT COLOR="red"> Platform</FONT>

    <A NAME="f_operating_environment"><A HREF="../base/any_flatshort.html#f_operating_environment">operating_environment</A>: <A HREF="../base/operating_environment_flatshort.html">OPERATING_ENVIRONMENT</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Objects available from the operating system</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            operating_environment_not_void: <B>Result</B> /= <B>Void</B>
</A>    
<B>feature</B> <FONT COLOR="red">--</FONT><FONT COLOR="red">{NONE}</FONT><FONT COLOR="red"> -- Initialization</FONT>

    <A NAME="f_make"><A HREF="../base/c_string_flatshort.html#f_make">make</A> (a_string: <A HREF="../base/string_general_flatshort.html">STRING_GENERAL</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Make a C string from </FONT>`a_string'<FONT COLOR="red">.</FONT>
        <B>require</B>
            a_string_not_void: a_string /= <B>Void</B>
</A>
    <A NAME="f_make_by_pointer"><A HREF="../base/c_string_flatshort.html#f_make_by_pointer">make_by_pointer</A> (a_ptr: <A HREF="../base/pointer_flatshort.html">POINTER</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Make a copy of string pointed by </FONT>`a_ptr'<FONT COLOR="red">.</FONT>
        <B>require</B>
            a_ptr_not_null: a_ptr /= <A HREF="../base/any_flatshort.html#f_default_pointer">default_pointer</A>
</A>
    <A NAME="f_make_by_pointer_and_count"><A HREF="../base/c_string_flatshort.html#f_make_by_pointer_and_count">make_by_pointer_and_count</A> (a_ptr: <A HREF="../base/pointer_flatshort.html">POINTER</A>; a_length: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Make a copy of first </FONT>`a_length'<FONT COLOR="red"> byte of string pointed by </FONT>`a_ptr'<FONT COLOR="red">.</FONT>
        <B>require</B>
            a_ptr_not_null: a_ptr /= <A HREF="../base/any_flatshort.html#f_default_pointer">default_pointer</A>
            a_length_non_negative: a_length &gt;= 0
</A>
    <A NAME="f_make_empty"><A HREF="../base/c_string_flatshort.html#f_make_empty">make_empty</A> (a_length: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Make an empty C string of </FONT>`a_length'<FONT COLOR="red"> characters.</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> C memory area is not initialized.</FONT>
        <B>require</B>
            a_length_positive: a_length &gt;= 0
</A>    
<B>invariant</B>
    managed_data_not_void: <A HREF="../base/c_string_flatshort.html#f_managed_data">managed_data</A> /= <B>Void</B>
    count_not_negative: <A HREF="../base/c_string_flatshort.html#f_count">count</A> &gt;= 0

        <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
    reflexive_equality: <A HREF="../base/any_flatshort.html#f_standard_is_equal">standard_is_equal</A> (<B>Current</B>)
    reflexive_conformance: <A HREF="../base/any_flatshort.html#f_conforms_to">conforms_to</A> (<B>Current</B>)

<B>end</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">class </FONT><A HREF="../base/c_string_flatshort.html">C_STRING</A><TABLE BORDER="1" ALIGN="CENTER"><TR><TD><A HREF="../class_list.html">Classes</A></TD><TD><A HREF="../cluster_list.html">Clusters</A></TD><TD><A HREF="../cluster_hierarchy.html">Cluster hierarchy</A></TD><TD><A HREF="c_string_chart.html">Chart</A></TD><TD><A HREF="c_string_links.html">Relations</A></TD><TD>Flat contracts</TD></TR></TABLE></PRE>
<P ALIGN="CENTER"> &#045;&#045; Generated by ISE Eiffel &#045;&#045 </P>
<P ALIGN="CENTER">For more details: <A HREF="http://www.eiffel.com">www.eiffel.com</A></P>
</BODY>
</HTML>

